package com.config.service;

import java.util.List;
import java.util.Map;

import com.config.entity.ShiftConfig;

public interface ShiftConfigService {
	
	/**
	 * 保存班制
	 * */
	public void save(ShiftConfig entity);
	
	/**
	 * 保存班次
	 * */
	public void saveShift(ShiftConfig entity,Map<String, Object> model);
	
	/**
	 * 修改班次
	 * */
	public void  update(ShiftConfig entity);
	
	/**
	 * 删除
	 * */
	public void delete(int id);
	
//	/**
//	 * 级联删除班制和班次
//	 * */
//	public void deleteByShiftsId(int ShiftsId,Map<String, Object> model);
	
	/**
	 * 根据主键查找班次
	 * */
	public ShiftConfig getShiftConfig(int id);
	
	/**
	 * 查询指定生产线下的正在使用的班制
	 * */
	public ShiftConfig findShiftsByLineId(int lineId,String belongTime);
	
	/**
	 * 查询指定班制下的所有班次
	 * */
	public	List<ShiftConfig> findByShiftsId(int fatherId);
	
	/**
	 * 查询生产线下所有的班制
	 * @param lineId
	 * @return
	 */
	List<ShiftConfig> findShifts(int lineId);
	
	 /**
	  * 获取指定父节点（可为null）下的所有记录条数
	  * @param fatherId，可为空
	  * @return
	  */
	 int countByFatherId(Integer fatherId);
	 
	 /**
	  * treegrid显示所有指定生产线下的所有班次配置，id为lineId
	  * @param lineId
	  * @param start
	  * @param limit
	  * @return
	  */
	 List<ShiftConfig> findByLineTreePage(Integer lineId, int start, int limit);
	 int countByLineTreePage(Integer lineId);
	 
	 /**
	  * 判断是否有重复
	  * @param id
	  * @return
	  */
	 boolean checkVertherRepeat(Integer id);
	 
	 /**
	  * 找到该生产线下的唯一有效记录
	  * @param lineId
	  * @return
	  */
	 ShiftConfig getEffectiveOne(Integer lineId);
}
